var functions = {
  /**
   * @name 判断传入地址的图片是否加载成功
   * @param {str} imgurl 
   * @param {function} callback 
   */
  imgLoad(imgurl, callback) {
    var img = new Image()
    img.src = imgurl
    if (callback) {
      callback()
    }
    return img.complete
  },

  /**
   * @name 倒计时
   * @param {int} time 
   * @param {function} callback 
   */
  countDown(time, callback) {
    var timeDown = setInterval(() => {
      // return time
      if (time == 0) {
        clearInterval(timeDown)
        if (callback) callback()
      } else {
        time--
      }
    }, 1000)
  },

  /**
   * @name 获取当前路由path
   * @param {*} vue 
   */
  getRouterPath(vue) {
    var routerPath = vue.$router.history.current.path
    return routerPath
  },

  /**
   * @name 获取当前路由中携带的参数，返回param或者返回全部的参数
   * @param {*} vue 
   * @param {str} param 
   */
  getRouterParams(vue, param) {
    if (param) {
      return vue.$router.history.current.params.param
    } else {
      return vue.$router.history.current.params
    }
  },

  /**
   * @name 从array中获取符合的obj
   */
  getRightItem(array,key,value){
    for(var item of array){
      if(item[key]==value){
        return item
      }
    }
  },

  /**
   * @name 同步操作
   * @param {*} array 
   * @param {*} callback 
   */
  async orderThis(array,callback){
    var array=(array||[]).push(callback)
    for(var func of array){
      await func()
    }
  },

  // 判断移动平台还是pc
  checkPcOrPhone(){
    return /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)?"phone":"pc"
  },

  /**
   * @name 拓展方法
   * @param {*} name 
   * @param {*} method 
   */
  fn(name,method){
    if(!method)throw new Error("拓展方法未定义")
    if(Object.keys(this).includes(name))throw new Error("方法名"+name+"重复")
    this[name]=method
  }

}

export default functions